php - 正则表达式 str_replace
全部标签 在我的网络应用程序中,我有一个表单字段,用户可以在其中输入URL。我已经在做一些初步的客户端验证,我想知道我是否可以使用正则表达式来验证输入的字符串是否是有效的URL。那么,两个问题:使用正则表达式这样做安全吗?URL是一个复杂的野兽,就像您不应该使用正则表达式来解析HTML一样,我担心它也可能不适合URL。如果可以完成,什么是适合该任务的正则表达式?(我知道谷歌找到了无数的正则表达式,但我担心它们的质量)。我的目标是防止URL出现在网页中但浏览器无法使用的情况。 最佳答案 嗯……也许吧。人们经常会问一个关于电子邮件地址的类似问题,
如何对一个只允许特殊字符的字段进行验证,这意味着AB#,A89@,@#ASD是允许的,但@#$^&或#是不允许的。我需要RegEx来进行验证。 最佳答案 str.match(/^[A-Z#@,]+$/)将匹配一个字符串......以包含的模式开始^并结束$...包含任何大写字母A-Z(不匹配小写字母)...仅包含特殊字符#、@和,...至少有1个字符(无空字符串)不区分大小写,你可以在末尾添加i:(i.g./pattern/i)**更新**如果您需要验证该字段是否仅包含特殊字符,您可以检查该字符串是否仅包含不是单词或数字的字符:if
我在下面有一个用于某些输入名称字段的正则表达式。如何在其中包含撇号和连字符?InputField("tFName",/^[a-zA-Z-\-\]+$/); 最佳答案 已包含连字符(两次),您只需将其编辑到字符类中即可添加撇号:/^[a-zA-Z-\-\']+$/您可以将其重写为如下所示,这样就无需转义连字符并且只包含一次:/^[a-zA-Z'-]+$/示例:http://jsfiddle.net/a4vGA/ 关于javascript-如何在此正则表达式中包含-和'?,我们在StackO
我想在JavaScript中使用正则表达式来验证表单输入。这是一个字符串,不应包含或我提到的任何特定字符集。如果字符串不包含这些字符,则测试应该通过。那么如何在正则表达式中指定不包含字符。示例:stringX="vijay@$%_"我的目标是字符串不应包含''字符。如果stringX没有这些字符,测试应该通过returntrue。注意:我能做到:stringX="vijay@$%_"regExp=/[`]/;if(!rexExp.test(stringX)){doSomthing()}但我不想要这个。因为我会遇到小麻烦。我有一个名为validate()的通用函数functionvali
我在我的开源项目中使用jQuery1.5,我自己的Javascript代码中也出现了以下行:/***Object.isEmpty()**@returns{Boolean}*/Object.prototype.isEmpty=function(){/***@deprecatedSinceJavascript1.8.5*@seehttps://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object*/if(this.__count__!==undefined){returnthis.__count__===0?
我遇到了Javascript的一些最奇怪的行为。即使if语句中的表达式的计算结果为false,我在ifblock中的代码仍会继续执行。这是代码片段:if(view.leftCols!==null){varleftCols=view.leftCols.split(',');for(varlc=0;lc0){grid.SetWidth(lcol,lwidth);}}catch(e){}grid.MoveCol(lcol,0,1,1);}}这是我的Firebug截图:有什么想法吗? 最佳答案 尽管Firebug中突出显示了该行,但您确定它
我需要正则表达式方面的帮助。我需要jquery中的表达式,它只允许两个单词之间的字符或空格。不允许有双空格我正在用这个/^[a-zA-Z]+(-_[a-zA-Z]+)*/但它不起作用。例子空格你好-不允许你好空间-不允许你好空间空间你好-不允许空间你好空间-不允许hello1234-不允许你好空间1234-不允许HelloWorld允许你好-允许你好,你好吗 最佳答案 你可以用这个/^([a-zA-Z]+\s)*[a-zA-Z]+$/ 关于javascript-只允许字符或空格的正则表达
是否有可能由此产生:美国专利6,570,557检索3个组:美国专利6570557(没有逗号)到目前为止我得到:(US)(\s{1}Patent\s{1})(\d{1},\d{3},\d{3})并尝试(?!,)去掉逗号,然后我有效地去掉了整个数字。 最佳答案 尝试:varinput='USPatent6,570,557',matches=input.match(/^(\w+)(\w+)([\d,]+)/),code=matches[1],name=matches[2],numb=matches[3].replace(/,/g,'');
我刚刚在Angular表达式中发现了这个有趣的明显不一致:可以在表达式中执行赋值如果赋值涉及来自ngRepeat的局部变量,这将中断这可以通过使用Controller中定义的setter而不是表达式中的赋值来克服SeePlunkerdocsonexpressions似乎只是明确禁止表达式中的控制流,我没有看到任何提及上述行为的类型。我想由此得出的结论是,无论如何使用setter可能是一种更好的设计模式,但是有没有人知道关于表达式中可能的内容的更明确的引用?如果Angular单方面禁止在其中赋值,也许会更好。(一个相关的不一致是,似乎可以在表达式中递增i=i+1而不是i+=1...)
我有一个使用express框架的小型node.js应用程序,但出于某种原因我无法让我的应用程序响应POST请求。在服务器日志中,我只是得到“POST/4045ms”,我不明白为什么。编辑:澄清-我的问题是app.post似乎没有做任何事情编辑2:昨晚我以某种方式设法解决了这个问题,但现在我不知道我是在什么时候解决的。Node.js服务器代码:varexpress=require('express'),routes=require('./routes'),user=require('./routes/user'),http=require('http'),path=require('